/**
    Removes a number of objects from the array
    @param from The first object to remove
    @param to (Optional) The last object to remove
*/
Array.prototype.remove = function(/**Number*/ from, /**Number*/ to)
{
  var rest = this.slice((to || from) + 1 || this.length);
  this.length = from < 0 ? this.length + from : from;
  return this.push.apply(this, rest);
};

/**
    Removes a specific object from the array
    @param object The object to remove
*/
Array.prototype.removeObject = function(object) {
  for (var i=0, loopCnt=this.length; i<this.length; ++i)
    if (this[i] === object)
      this.remove(i);
};

Array.prototype.contains = function(value) {
  for(var i=0, loopCnt=this.length; i<loopCnt; ++i)
    if(this[i] == value)
      return true;
  return false;
};

Math.intRandomBetween = function(a, b) {
  return a + Math.round(Math.random()*b);
}
